# @Time    : 2018/5/30 21:15
# @Author  : Jame
from db import models
from interface import common_interface
from core import admin as core_admin





#创建日志对象
logger=common_interface.load_my_logging_cfg('admin')

#1.管理员注册
def admin_register_interface(name,password):
    obj=models.Admin.select(name)
    if obj: #管理员生若存在
        return False,'用户已存在，请重试...'
    else:
        admin=models.Admin() #生成一个admin对象，用这个admin对象来进行注册！
        admin.register(name,password)

        logger.info('用户 %s 注册成功!'%name) #记录日志
        return True,'用户 %s 注册成功!'%name




#2.管理员登陆
#common_interface.login()


#3.管理员创建学校
def admin_create_school(admin_name,school_name,school_address):
    obj=models.School.select(school_name)
    if obj: #若学校名已经存在
        logger.error('%s 老师创建 %s 学校已经存在，请勿重复创建...' %(admin_name,school_name))

        return False,'%s 学校已经存在，请勿重复创建...'%school_name

    else:
        admin_obj=models.Admin.select(admin_name)
        admin_obj.create_school(school_name,school_address)

        logger.info('%s 创建学校: %s 成功!'%(admin_name,school_name))
        return True,'%s 创建学校: %s 成功!'%(admin_name,school_name)



#4.管理员创建老师
def admin_create_teacher(admin_name,teacher_name,teacher_password,teach_school_name):
    obj=models.Teacher.select(teacher_name)
    if obj: #若老师名已经存在
        logger.error('%s 老师创建 %s 老师已经存在，请勿重复创建...' %(admin_name,teacher_name))

        return False,'%s 已经存在，请勿重复创建...'%teacher_name
    else:
        admin_obj=models.Admin.select(admin_name)
        admin_obj.create_teacher(teacher_name,teacher_password,teach_school_name)

        logger.info('%s 创建老师: %s,绑定 %s 学校成功!' %(admin_name,teacher_name,teach_school_name))
        return True,'创建老师: %s,绑定 %s 学校成功!' %(teacher_name,teach_school_name)



#5.管理员创建课程
def admin_create_course(admin_name,course_name,cyclical,price,school_name):
    obj=models.Course.select(course_name)
    if obj: #若课程已存在
        logger.error('%s 创建课程失败， %s 课程已经存在，请勿重复创建...' %(admin_name,course_name))
        return False,'%s 已经存在，请勿重复创建...'%course_name
    else:
        admin_obj=models.Admin.select(admin_name)
        admin_obj.create_course(course_name,cyclical,price,school_name)

        logger.info('%s 创建课程:%s 创建成功,并绑定校区:%s 成功!'%(admin_name,course_name,school_name))
        return True,'课程:%s 创建成功,并绑定校区:%s 成功!'%(course_name,school_name)



#6.查看日志，未走interface层


#7.修改我的密码
def modify_passwod_interface(admin_name,newpassword):
    admin_obj=models.Admin.select(admin_name)
    if admin_obj.password==newpassword: #新旧密码一直，提示

        logger.error('[管理员]：%s，修改自己的密码失败'%admin_name)
        return False,'新密码和旧密码一致，修改无效，请重试!'
    else:
        admin_obj.modify_password(newpassword)
        logger.info('[管理员]:%s 修改自己密码生效，退出重新登陆!'%admin_name)
        return True,'%s 的密码修改已生效,即将退出,请重新登陆!'%admin_name


#8.修改老师的密码，因为老师的账号是管理员注册的
def modify_teacher_passwod_interface(admin_name,teacher_name,newpassword):
    teacher_obj=models.Teacher.select(teacher_name)
    if not teacher_obj: #老师不存在
        return False,'%s 老师用户名不存在，无法修改!'%teacher_name
    else:
        if teacher_obj.password==newpassword:
            logger.error('[管理员]:%s 修改老师:%s 密码失败，原因：两次密码重复!'%(admin_name,teacher_name))
            return False,'%s 老师的新旧密码一致，请换个新的密码.'%teacher_name
        else:
            teacher_obj.modify_password(newpassword)
            logger.info('[管理员]:%s 修改老师:%s 密码成功!'%(admin_name,teacher_name))
            return True,'修改 %s 老师的密码成功!'%teacher_name
